Visually recognizing objects is one of those tasks that is very simple for humans but very difficult for machines. Some solutions for visual recognition require that the object is in a very specific position, limit the number of objects that may be recognized, or require that a distinctive mark be placed on the object, such as multi-line barcodes or matrix barcodes.
But these solutions do not solve the general problem of quick recognition of any object from a large number of possible objects in an uncontrolled environment where the objects may be situated in any position, such as objects placed on a checkout counter.